package com.atguigu.spzx.user.service;

import cn.hutool.http.server.HttpServerRequest;
import com.atguigu.spzx.model.dto.user.UserLoginDto;
import com.atguigu.spzx.model.dto.user.UserRegisterDto;
import com.atguigu.spzx.model.entity.h5.UserCollect;
import com.atguigu.spzx.model.entity.order.OrderItem;
import com.atguigu.spzx.model.entity.product.ProductSku;
import com.atguigu.spzx.model.vo.h5.UserCollectVo;
import com.atguigu.spzx.model.vo.user.UserInfoVo;
import com.github.pagehelper.PageInfo;
import jakarta.servlet.http.HttpServletRequest;

/**
 * @ClassName: UserInfoService
 * @Package: com.atguigu.spzx.user.service
 * @Description
 * @Author 孤妤
 * @Date: 2023/12/19 11:50
 */
public interface UserInfoService {
    /**
     * @description: 用户注册
     * @param: 用户注册传入的参数
     **/
    void userRegist(UserRegisterDto userRegisterDto);
    /**
     * @description: 用户登陆
     * @param: 用户登陆传入的参数和request
     **/
    String userLogin(UserLoginDto userLoginDto, HttpServletRequest request);
    /**
     * @description: 根据ThreadLoad获取用户信息
     **/
    UserInfoVo findUser();
    /**
     * @description: 查询商品是否收藏
     * @param: 商品的skuId
     **/
    Boolean findIsCollect(Integer skuId);
    /**
     * @description: 收藏商品
     * @param: 商品的skuId
     **/
    void addCollect(Integer skuId);
    /**
     * @description: 取消收藏商品
     * @param: 商品的skuId
     **/
    void removeCancelCollect(Integer skuId);
    /**
     * @description: 我的收藏
     * @param: 我的收藏列表分页
     **/
    PageInfo<UserCollectVo> findUserCollectPage(Integer page, Integer limit);
    /**
     * @description: 浏览历史
     * @param: 浏览历史列表分页
     **/
    PageInfo<UserCollectVo> findUserBrowseHistoryPage(Integer page, Integer limit);
}
